\hypertarget{class_i_renderable_object}{\section{I\-Renderable\-Object Class Reference}
\label{class_i_renderable_object}\index{I\-Renderable\-Object@{I\-Renderable\-Object}}
}


Renderable objects interface.  




{\ttfamily \#include $<$I\-Renderable\-Object.\-h$>$}

Inheritance diagram for I\-Renderable\-Object\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_i_renderable_object}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \hyperlink{class_i_renderable_object_a8617f0f0fe197a0bfd3939476ba03aad}{$\sim$\-I\-Renderable\-Object} ()
\item 
virtual bool \hyperlink{class_i_renderable_object_a69fb217e1529b5ae33107d256f20f9e9}{Load} (const char $\ast$sz\-File\-Path)=0
\begin{DoxyCompactList}\small\item\em Loads a mesh from the specified filepath. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_i_renderable_object_a527206d091af2f65837cd7bb83a7ddcb}{Load} ()=0
\begin{DoxyCompactList}\small\item\em Used for primitive derived objects. \end{DoxyCompactList}\item 
virtual X\-M\-M\-A\-T\-R\-I\-X \hyperlink{class_i_renderable_object_a9eb9acb43b22ec1a60b570630afaebf5}{Get\-World\-Transform\-Matrix} ()=0
\item 
virtual void \hyperlink{class_i_renderable_object_a001ef1f9df8f5ff46f25b16b5e4f1538}{Set\-World\-Transform\-Matrix} (X\-M\-M\-A\-T\-R\-I\-X mat)=0
\item 
virtual void \hyperlink{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{Render} ()=0
\begin{DoxyCompactList}\small\item\em This function needs to take care of rendering the object. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_i_renderable_object_a17f8490e4248b2e86f80c096eb8b5061}{Pre\-Render} ()=0
\begin{DoxyCompactList}\small\item\em Called immmediately before \hyperlink{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{Render()}. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_i_renderable_object_acc15b8342715b37a63cbfe65d1f28301}{Post\-Render} ()=0
\begin{DoxyCompactList}\small\item\em Called immediately after \hyperlink{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{Render()}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Renderable objects interface. 

This is the objecttype the renderer uses to iterate through the object to be renderered 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_i_renderable_object_a8617f0f0fe197a0bfd3939476ba03aad}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!$\sim$\-I\-Renderable\-Object@{$\sim$\-I\-Renderable\-Object}}
\index{$\sim$\-I\-Renderable\-Object@{$\sim$\-I\-Renderable\-Object}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{$\sim$\-I\-Renderable\-Object}]{\setlength{\rightskip}{0pt plus 5cm}virtual I\-Renderable\-Object\-::$\sim$\-I\-Renderable\-Object (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{class_i_renderable_object_a8617f0f0fe197a0bfd3939476ba03aad}


\subsection{Member Function Documentation}
\hypertarget{class_i_renderable_object_a9eb9acb43b22ec1a60b570630afaebf5}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!Get\-World\-Transform\-Matrix@{Get\-World\-Transform\-Matrix}}
\index{Get\-World\-Transform\-Matrix@{Get\-World\-Transform\-Matrix}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{Get\-World\-Transform\-Matrix}]{\setlength{\rightskip}{0pt plus 5cm}virtual X\-M\-M\-A\-T\-R\-I\-X I\-Renderable\-Object\-::\-Get\-World\-Transform\-Matrix (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{class_i_renderable_object_a9eb9acb43b22ec1a60b570630afaebf5}


Implemented in \hyperlink{classpg_renderable_object_ae8b043753092952bf012283460eeae3a}{pg\-Renderable\-Object}, \hyperlink{classpg_primitive_cube_af685031c1b657bb9b89d34ab47d3f795}{pg\-Primitive\-Cube}, and \hyperlink{classpg_primitive_triangle_a059838a96c6f28fbc37395014ad97abd}{pg\-Primitive\-Triangle}.

\hypertarget{class_i_renderable_object_a69fb217e1529b5ae33107d256f20f9e9}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!Load@{Load}}
\index{Load@{Load}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{Load}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool I\-Renderable\-Object\-::\-Load (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{sz\-File\-Path}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{class_i_renderable_object_a69fb217e1529b5ae33107d256f20f9e9}


Loads a mesh from the specified filepath. 

The format is chosen by the extension 
\begin{DoxyParams}{Parameters}
{\em sz\-File\-Path} & Path to the mesh file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}


Implemented in \hyperlink{classpg_renderable_object_a11ccb575b1ecc1dcd0e641d985a0e29c}{pg\-Renderable\-Object}, \hyperlink{classpg_primitive_cube_a3231d83c2a689104b60887a1424989d4}{pg\-Primitive\-Cube}, and \hyperlink{classpg_primitive_triangle_a05115ba29d5f6c99247d6b94bdce5169}{pg\-Primitive\-Triangle}.

\hypertarget{class_i_renderable_object_a527206d091af2f65837cd7bb83a7ddcb}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!Load@{Load}}
\index{Load@{Load}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{Load}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool I\-Renderable\-Object\-::\-Load (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{class_i_renderable_object_a527206d091af2f65837cd7bb83a7ddcb}


Used for primitive derived objects. 



Implemented in \hyperlink{classpg_renderable_object_ad0293f0e6bf59fa5344f94a96e65ea26}{pg\-Renderable\-Object}, \hyperlink{classpg_primitive_cube_a7f3966bb05ba1fd8eb7420200c818ae6}{pg\-Primitive\-Cube}, and \hyperlink{classpg_primitive_triangle_a12dda0b886c4517bcacfe03a9f4d3a1d}{pg\-Primitive\-Triangle}.

\hypertarget{class_i_renderable_object_acc15b8342715b37a63cbfe65d1f28301}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!Post\-Render@{Post\-Render}}
\index{Post\-Render@{Post\-Render}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{Post\-Render}]{\setlength{\rightskip}{0pt plus 5cm}virtual void I\-Renderable\-Object\-::\-Post\-Render (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{class_i_renderable_object_acc15b8342715b37a63cbfe65d1f28301}


Called immediately after \hyperlink{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{Render()}. 



Implemented in \hyperlink{classpg_renderable_object_a0c09b82c6c02f8c5b071b5f41d8db762}{pg\-Renderable\-Object}, \hyperlink{classpg_primitive_cube_a8135664cb28bb45001bc0143a4dc8c47}{pg\-Primitive\-Cube}, and \hyperlink{classpg_primitive_triangle_ac5ff42565006a0aaaf5938129b58b17a}{pg\-Primitive\-Triangle}.

\hypertarget{class_i_renderable_object_a17f8490e4248b2e86f80c096eb8b5061}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!Pre\-Render@{Pre\-Render}}
\index{Pre\-Render@{Pre\-Render}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{Pre\-Render}]{\setlength{\rightskip}{0pt plus 5cm}virtual void I\-Renderable\-Object\-::\-Pre\-Render (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{class_i_renderable_object_a17f8490e4248b2e86f80c096eb8b5061}


Called immmediately before \hyperlink{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{Render()}. 



Implemented in \hyperlink{classpg_renderable_object_a5a88dd638276dbd1f812aa1940e619d3}{pg\-Renderable\-Object}, \hyperlink{classpg_primitive_cube_a03b221ea37fdd7f0b647255a32822598}{pg\-Primitive\-Cube}, and \hyperlink{classpg_primitive_triangle_a4dfa93d20b8e77718b2db55557660284}{pg\-Primitive\-Triangle}.

\hypertarget{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!Render@{Render}}
\index{Render@{Render}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{Render}]{\setlength{\rightskip}{0pt plus 5cm}virtual void I\-Renderable\-Object\-::\-Render (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}


This function needs to take care of rendering the object. 

Setting up data relevant to rendering should be performed in \hyperlink{class_i_renderable_object_a17f8490e4248b2e86f80c096eb8b5061}{Pre\-Render()}. 

Implemented in \hyperlink{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}{pg\-Renderable\-Object}, \hyperlink{classpg_primitive_cube_a450666fe0d2441c32a2de007bce5b30d}{pg\-Primitive\-Cube}, and \hyperlink{classpg_primitive_triangle_a10d741e8d9c2bafcaa6e119c34fc4606}{pg\-Primitive\-Triangle}.

\hypertarget{class_i_renderable_object_a001ef1f9df8f5ff46f25b16b5e4f1538}{\index{I\-Renderable\-Object@{I\-Renderable\-Object}!Set\-World\-Transform\-Matrix@{Set\-World\-Transform\-Matrix}}
\index{Set\-World\-Transform\-Matrix@{Set\-World\-Transform\-Matrix}!IRenderableObject@{I\-Renderable\-Object}}
\subsubsection[{Set\-World\-Transform\-Matrix}]{\setlength{\rightskip}{0pt plus 5cm}virtual void I\-Renderable\-Object\-::\-Set\-World\-Transform\-Matrix (
\begin{DoxyParamCaption}
\item[{X\-M\-M\-A\-T\-R\-I\-X}]{mat}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{class_i_renderable_object_a001ef1f9df8f5ff46f25b16b5e4f1538}


Implemented in \hyperlink{classpg_renderable_object_a3b37315c868aa9662fabd08e4b185cd3}{pg\-Renderable\-Object}, \hyperlink{classpg_primitive_cube_a1fb52b00d40fb1d1465a8e6e3faf706e}{pg\-Primitive\-Cube}, and \hyperlink{classpg_primitive_triangle_a604a83ba51db557f8786a2d9ecb897b6}{pg\-Primitive\-Triangle}.



The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
Inc/\hyperlink{_i_renderable_object_8h}{I\-Renderable\-Object.\-h}\end{DoxyCompactItemize}
